﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Drawing.Printing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.IO;

namespace GIFT
{
    public class ControlTexto
    {
        //Constructor de la clase
        public ControlTexto()
        {
            consultaTexto = new ConsultaTexto();
        }

        //Retornar el atributo del Texto con el nombre que recibe como parametro
        public String obtenerAtributo(String nombre, String atributo)
        {
            //Manda a buscar en la base de datos el correlativo
            return consultaTexto.buscarAtributo(nombre, atributo);
        }

        //Recibe un nombre y retorna true si este ya existe en la base de datos
        public bool existe(String nombre)
        {
            if (consultaTexto.existe(nombre))//Si ya existe
            {
                return true;
            }
            return false;
        }

        //Retorna un arreglo con los nombres de los Texto que contengan la hilera que reciba como parametro en el nombre o la descripcion
        public ArrayList buscarContenido(String aBuscar)
        {
            ArrayList nombres = consultaTexto.buscarConcordancias(aBuscar);//Agrega al arreglo los nombres 
            return nombres;
        }

        //retorna una lista con todos los nombres de los textos que existen
        public ArrayList obtenerTextos()
        {
            ArrayList nombres = consultaTexto.obtieneTextos(); //Obtiene los Textos y los retorna
            return nombres;
        }

        //Manda a borrar un Texto
        public void borrar(String nombre)
        {
            consultaTexto.borrar(nombre);
        }

        //Manda a crear un nuevo Texto
        public void crearNuevo(String nombre, String descripcion, String largo, String defecto)
        {
            //PRIMERO SE DEBEN DE REVISAR SI LOS FORMATOS DE LOS CAMPOS SON LOS CORRECTOS
            if (nombre == "") return;
            if (largo != "") { if (!esEntero(largo)) return; }
            if (descripcion == "") descripcion = "NULL";
            if (largo == "") largo = "NULL";
            if (defecto == "") defecto = "NULL";
            consultaTexto.crear(nombre, descripcion, largo, defecto); //Lo manda a agregar a la BD
        }

        //Manda a modificar un Texto
        public void modificar(String nombre, String descripcion, String largo, String defecto)
        {
            //PRIMERO SE DEBEN DE REVISAR SI LOS FORMATOS DE LOS CAMPOS SON LOS CORRECTOS
            if (nombre == "") return;
            if (largo != "") { if (!esEntero(largo)) return; }
            if (descripcion == "") descripcion = "NULL";
            if (largo == "") largo = "NULL";
            if (defecto == "") defecto = "NULL";
            consultaTexto.modificar(nombre, descripcion, largo, defecto); //Lo manda a agregar a la BD
        }

        //metodo para controlar si un string contiene un valor numerico
        public bool esEntero(string valor)
        {
            try
            {
                Convert.ToInt32(valor);
                return true;
            }
            catch
            {
                return false;
            }
        } //IsInteger


        //Variables globales

        //Clase que realiza las consultas a la base de datos
        private ConsultaTexto consultaTexto;


    }
}
